home *** CD-ROM | disk | FTP | other *** search
/ 5 Star Games: DOS Edition 2 / 5 Star Games - DOS Edition (1995)(Ready to Run).iso / dbc / db_win.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-02-28  |  9.1 KB  |  249 lines

  1. /****************************************************************************/
  2. /*                 HEADER FILE FOR DATABOSS MODULE: DB_WIN                  */
  3. /****************************************************************************/
  4.  
  5. /*******************************  CONSTANTS  ********************************/
  6.  
  7. typedef byte const attrtable[256];
  8. typedef attrtable *attrtaptr;
  9.  
  10. extern attrtable MonoTable;  /* =
  11.  {0x00,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
  12.     0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
  13.     0x70,0x08,0x07,0x07,0x07,0x07,0x07,0x07,
  14.     0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
  15.     0x70,0x07,0x08,0x07,0x07,0x07,0x07,0x07,
  16.     0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
  17.     0x70,0x07,0x07,0x08,0x07,0x07,0x07,0x07,
  18.     0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
  19.     0x70,0x07,0x07,0x07,0x08,0x07,0x07,0x07,
  20.     0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
  21.     0x70,0x07,0x07,0x07,0x07,0x08,0x07,0x07,
  22.     0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
  23.     0x70,0x07,0x07,0x07,0x07,0x07,0x08,0x07,
  24.     0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
  25.     0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x77,
  26.     0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
  27.     0x88,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
  28.     0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,
  29.     0xF0,0x88,0x87,0x87,0x87,0x87,0x87,0x87,
  30.     0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,
  31.     0xF0,0x87,0x88,0x87,0x87,0x87,0x87,0x87,
  32.     0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,
  33.     0xF0,0x87,0x87,0x88,0x87,0x87,0x87,0x87,
  34.     0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,
  35.     0xF0,0x87,0x87,0x87,0x88,0x87,0x87,0x87,
  36.     0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,
  37.     0xF0,0x87,0x87,0x87,0x87,0x88,0x87,0x87,
  38.     0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,
  39.     0xF0,0x87,0x87,0x87,0x87,0x87,0x88,0x87,
  40.     0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,
  41.     0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF7,
  42.     0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0}; */
  43. extern attrtable ColorTable;  /* =
  44.  {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
  45.     0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
  46.     0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
  47.     0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
  48.     0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,
  49.     0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,
  50.     0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
  51.     0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F,
  52.     0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,
  53.     0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,
  54.     0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,
  55.     0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F,
  56.     0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,
  57.     0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,
  58.     0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,
  59.     0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F,
  60.     0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,
  61.     0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
  62.     0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,
  63.     0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
  64.     0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,
  65.     0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
  66.     0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,
  67.     0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
  68.     0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,
  69.     0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
  70.     0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,
  71.     0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
  72.     0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,
  73.     0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
  74.     0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,
  75.     0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}; */
  76.  
  77. #define T_ON        True
  78. #define T_OFF       False
  79. #define WinHdrSz    60
  80. #define WinHdrSz1   19
  81. #define MaxWins     255
  82. #define _Up_        0
  83. #define _Down_      1
  84. #define _Left_      2
  85. #define _Right_     3
  86. #define readBufSize 2048
  87.  
  88. /*********************************  TYPES  **********************************/
  89.  
  90.  
  91. typedef byte  readBuffer[readBufSize];
  92.  
  93. typedef struct {
  94.     byte x;
  95.     byte y;
  96.     byte m;
  97. } funcpos;
  98.  
  99. typedef struct {
  100.     uchar vchar;
  101.     byte  vattr;
  102. } vidchar;
  103.  
  104. typedef vidchar   largeblk[8000];
  105. typedef largeblk *largebptr;
  106. typedef uchar     titlestr[41];
  107.  
  108. typedef enum {TopLft,TopCnt,TopRgt,BotLft,BotCnt,BotRgt,
  109.                             LftTop,LftCnt,LftBot,RgtTop,RgtCnt,RgtBot} justified;
  110.  
  111. typedef uchar border[8];
  112. typedef struct txtblk {
  113.     byte   a;
  114.     byte   x;
  115.     byte   y;
  116.     strptr tstrn;
  117.     struct txtblk *nxttxt;
  118. } txtblk, *txtblkptr;
  119.  
  120. typedef struct wintyp {
  121.     byte           wno;         /* Reference for user recognition */
  122.     int            mx;          /* Offset position w.r.t screen */
  123.     int            my;
  124.     byte           mwid;        /* Dimensions for the viewable Window Region */
  125.     byte           mhgt;
  126.     byte           wincolr;     /* Window Base Color */
  127.     byte           borcolr;     /* Border Color/Attribute */
  128.     byte           shadow;      /* 0-NO Shadow otherwise shadow attribute */
  129.     border         borchrs;     /* The four sides and corners of the border */
  130.     byte           titlejus;    /* Title Justification */
  131.     titlestr       title;       /* Title String */
  132.     int            x;           /* Variable display slide top left posn */
  133.     int            y;
  134.     byte           wid;         /* Variable display slide dimensions */
  135.     byte           hgt;
  136.     word           wsize;       /* No. of bytes needed to store the window */
  137.     ptr            origptr;     /* Pointer to memory for window block */
  138.     ptr            winblk;      /* Window Pointer forced to Seg boundry */
  139.     cursortyp      curs;        /* Save a cursor for each window */
  140.     bool           disp;        /* Is the window displayed or hidden */
  141.     struct wintyp *nxtwin;      /* Next window in window chain */
  142.     struct wintyp *prvwin;      /* Previous window in window chain */
  143. } wintyp, *winptr;
  144.  
  145. typedef winptr winarray[MaxWins+1]; /* zeroth element not used */
  146.  
  147. typedef struct {
  148.     pathstr   wfnam;
  149.     winarray  wa;
  150.     uchar     bfchar;
  151.     byte      bfcolr;
  152.     byte      scrmode;
  153.     winptr    bgw;
  154.     word      savattr;
  155. } winfrec;
  156.  
  157. typedef struct buffering {
  158.       signed int    bufPos;
  159.       signed int    bufEnd;
  160.       readBuffer    dBuf;
  161.       int           ioRes;
  162. }buffering;
  163.  
  164. /*************************  INITIALIZED VARIABLES  **************************/
  165.  
  166. extern byte  vert;        /* = 0;     */
  167. extern byte  horz;        /* = 1;     */
  168. extern bool  lcd;         /* = False; */
  169. extern bool  goodwrite;   /* = True;  */
  170. extern bool  posncurs;    /* = False; */
  171. extern bool  bg_on;       /* = True;  */
  172. extern uchar backfillch; /* = ' ';   */
  173.  
  174. /*******************************  VARIABLES  ********************************/
  175.  
  176. extern bool      dispbg;
  177. extern bool      _wondisk;
  178. extern funcpos   mpath;
  179. extern funcpos   mdate;
  180. extern funcpos   mtime;
  181. extern funcpos   mksta;
  182. extern attrtaptr cmono;
  183. extern wintyp    winscr;
  184. extern winptr    msgwin;
  185. extern winptr    firwin;
  186. extern winptr    curwin;
  187. extern ptr       actvid;
  188. extern ptr       savvid;
  189. extern byte      origm;
  190. extern byte      origc;
  191. extern byte      scrwid;
  192. extern byte      scrhgt;
  193. extern byte      sunposn;
  194. extern byte      checksnow;
  195. extern buffering bufInfo;
  196.  
  197. /*******************************  PROTOTYPES  *******************************/
  198.  
  199. bool bufEof(int fileHandle);                                                /* SN 3.5 */
  200. long bufFilePos(int fileHandle);                                            /* SN 3.5 */
  201. void bufBlockRead(int fileHandle, readBuffer destination, word length);            /* SN 3.5 */
  202. void dispw(byte x, byte y, byte w, byte h, byte _w, ptr vram, ptr winb);
  203. void initblk(word len, uchar ch, byte color, ptr winb);
  204. void restline(byte x, byte y, byte len, byte orien, ptr actv, ptr savv);
  205. void displine(byte x, byte y, byte colr, byte orien, byte w, word di, ptr winb, ptr str);
  206. void dispattr(byte x, byte y, byte colr, byte orien, byte w, word di, ptr winb, byte n);
  207. byte eslen(string instr);
  208. byte revattr(byte attr);
  209. bool overlap(winptr w1, winptr w2);
  210. void clip(byte *tx, byte *ty, byte *tw, byte *th, winptr winp);
  211. void get4sides(winptr winp, string tl, string bl, string rl, string ll);
  212. void dispwin(ptr vram, winptr winp);
  213. void dispwindow(winptr winp);
  214. void clrwin(winptr winp);
  215. void dispallwin(void);
  216. void selectwin(winptr winp);
  217. void inscroll(byte dirn, winptr winp);
  218. void scrollwin(byte dirn, winptr winp);
  219. void movewin(int tx, int ty, winptr winp);
  220. void hidewin(bool mode, winptr winp);
  221. void resizewin(int tx, int ty, int tw, int th, winptr winp);
  222. void togglemode(void);
  223. void writewxy(string wstr, byte wa, byte wx, byte wy, winptr winp);
  224. void attrwritewxy(byte len, byte wa, byte wx, byte wy, winptr winp);
  225. void getline(byte tx, byte ty, byte tl, string tsc, string tsa, winptr winp);
  226. void putline(byte tx, byte ty, byte tl, string tsc, string tsa, winptr winp);
  227. void message(winptr w, string msg);
  228. void hilite(byte tx, byte ty, byte l, byte a, uchar c, winptr winp);
  229. void readwin(int f, winptr *winp);
  230. void readoverwin(int f);
  231. int  initwin(winfrec *wfr);
  232. bool openwin(byte _wno,
  233.                             int _x, int _y, byte _wid, byte _hgt,
  234.                             byte _wincolr, byte _borcolr, byte _shadow, border _borchrs,
  235.                             justified _titlejus, string _title);
  236. void closewin(winptr *winp);
  237. void closeallwin(void);
  238. void disposewf(winfrec *wfr);
  239. void readintwin(pathstr wfnam, int start, int num, void *internalwins);
  240. void writewin(int f, winptr winp);
  241. void clrback(void);
  242. void clrscrandback(void);
  243. void colorwin(byte tcolr, winptr winp);
  244. byte pickwin(int thiswin, winfrec *w);
  245.  
  246. void db_win_init(void);
  247.  
  248. /*****************************  END OF DB_WIN.H  ****************************/
  249.